feat(rust/zvec): add Rust SDK#316
Conversation
There was a problem hiding this comment.
Your free trial has ended. If you'd like to continue receiving code reviews, you can add a payment method here.
|
Thank you very much for this contribution! I wanted to give you a heads-up that we might take a little longer than usual to review this PR. We are currently having internal discussions regarding the repository structure — specifically, whether we should keep all language bindings in this main repository or move them to separate, dedicated repositories. Sorry for the delay, and thanks again for your support! |
|
@sunhailin-Leo Please submit the PR to this repo git@github.com:zvec-ai/zvec-rust.git |
OK,I will make it ASAP. |
This pull request introduces a new Rust SDK for the zvec vector database, including a safe, idiomatic Rust API, FFI bindings, benchmarking, and CI integration. The changes add a Cargo workspace with two crates (
zvecandzvec-sys), comprehensive documentation, coverage scripts, and GitHub Actions workflows for building and testing the Rust SDK on multiple platforms.Rust SDK Structure and Documentation:
zvec-sys(FFI bindings to the zvec C-API) andzvec(safe, high-level Rust wrapper). IncludesCargo.tomlfiles for both crates and workspace configuration. [1] [2] [3]README.mdfor the Rust SDK, covering architecture, build/test instructions, API usage, supported types, and index types.Testing, Benchmarking, and Coverage:
zvec/benches/zvec_bench.rsusing Criterion.rs, covering document creation, field access, insert, query, schema creation, and type conversions.scripts/coverage.shusingcargo-llvm-cov, supporting HTML, LCOV, text, and JSON reports.CI/CD Integration:
.github/workflows/01-ci-pipeline.yml) to add jobs for building and testing the Rust SDK on macOS ARM64 and Linux x64..github/workflows/06-rust-build.yml) for building, linting, testing, and benchmarking the Rust SDK, including C library build steps and environment setup.